In conventional stand-alone storage devices, device models have respective performance limits. When the load of operations increases, or the capacity limit of a single device is reached, a user has had to upgrade his or her device to an upper-level model, or to distribute services to be provided among a plurality of individual devices.
However, upgrading or distributing of services among a plurality of devices impairs the user's convenience. Recently, with an increasing amount of capacity demanded for storage devices as a backdrop, a scale-out type storage system has been desired.
In scale-out storage area network (SAN) devices, blocks are units of access. In such a SAN device, it is easy to process the user's requests by using a plurality of storage devices. Therefore, scale-out type storage has gained relatively widespread use.
In contrast, in scale-out network attached storage (NAS) devices, a consistent namespace has to be maintained by a plurality of storage devices. Therefore, in such a NAS device, the user's requests are not processed in parallel by simply using a plurality of storage devices. In scale-out NAS devices, a file system with a single namespace has to be provided to the user. There are a plurality of implementation schemes in scale-out NAS devices in accordance with differences in the meta data management scheme of the file system.
FIG. 13 and FIG. 14 are diagrams for explaining conventional implementation schemes in a scale-out NAS device. FIG. 13 is a diagram for explaining implementation employing internal mounts of a plurality of volumes by using junctions. In FIG. 13, each of nodes 81 to 84 is a storage device, and includes independent redundant array of inexpensive disks (RAID) and a file system. The plurality of nodes 81 to 84 connected over a network constitute one storage system.
A to E denote storage areas called volumes, and the user's file is created in a volume. The node 81 includes the volumes A and D, the node 82 includes the volume C, the node 83 includes the volume E, and the node 84 includes the volume B.
In the storage system, each volume is mounted at a junction point. This enables the storage system to be seen as a single namespace from the user. The junction point as used here is a point at which, when volumes are connected in a hierarchy as illustrated in FIG. 13, a volume at a lower level is connected to a volume at an upper level. For example, the volume B has junction points at which the volume D and the volume E are connected below the volume B.
FIG. 14 is a diagram for explaining implementation using a single namespace container. In FIG. 14, nodes 91 to 94 are storage devices, which are connected over a network and constitute one storage system.
D1 to D5 denote storage areas called file containers, and the user's file is created in a file container. The node 91 includes the file containers D1 and D4, the node 92 includes the file container D3, the node 93 includes the file container D5, and the node 94 includes the file container D2.
The node 94 also includes a namespace container NS. The namespace container NS stores the names of files in association with file containers containing the files, and manages file names of the entire storage system. For example, the namespace container NS stores the fact that the file1 is included in the container D1, the file2 is included in the file container D4, and the file3 is included in the file container D3.
Besides the two implementation schemes, there is a implementation scheme in which a storage system including a plurality of storage devices provides a single namespace and a single file container to stripe data across a plurality of storage devices.
Additionally, there is an example of related arts in which a plurality of file systems provided by separate NAS systems are integrated into a single “global” namespace, and the integrated namespace is provided to NAS clients.
There is another example of related arts in which restrictions are totally imposed on storage resources of a plurality of file systems in a network storage system where the plurality of file systems are virtualized as one file system to enable access to that file system.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 2008-159027 and Japanese Laid-open Patent Publication No. 2006-92322.
The implementation scheme employing internal mounts of a plurality of volumes by using junctions has an advantage in that the overhead involved in scaling out is small, because architecture before scale-out, almost exactly as it is, may be utilized, and a file is possessed and managed by a specific node in units of volumes. However, this implementation scheme has a problem in that files may be assigned to nodes only at a coarse granularity, that is, in units of volumes.
The implementation scheme using a single namespace container NS has an advantage in that files may be assigned to nodes in units of files, but a problem in that there is an overhead of making an inquiry to a namespace container NS about the storage node of a file.